package com.mc.common.fanxing;

public class FanxingTest {
    public static void main(String[] args) {

        Box box=new Box();
        box.setObj(new Apple());
        //需要强制转换
        Apple obj = (Apple) box.getObj();
        /**
         *“任意化”带来的缺点是要做显式的 ，而这种转换是要求开发者对 类型可以预知的情况下进行的。对于强制类型转换错误的情况， 可能不提示错误，在运行的时候才出现异常，这是一个安全隐患
         * Exception in thread "main" java.lang.ClassCastException: com.mc.common.fanxing.Apple cannot be cast to java.lang.String
         */
        String obj1 = (String) box.getObj();
        Box<Apple> box1=new Box<>();
        box1.setObj(new Apple());
        //省去了强制转换，可以在编译时候检查类型安全，可以用在类，方法，接口上
        Apple obj2 = box1.getObj();

    }
}
